<template>
  <el-container class="container">
    <el-header class="header">
      <el-row>
        <el-col :span="8">
          <img src="../../assets/images/logo.png" alt>
        </el-col>
        <el-col :span="8">
          <h1>电商后台管理系统</h1>
        </el-col>
        <el-col :span="8" class="out">
          欢迎上海前端33期亮瞎眼会员
          <a href="#" @click.prevent="logout">退出</a>
        </el-col>
      </el-row>
    </el-header>
    <el-container>
      <el-aside class="aside" width="200px">
        <!-- 导航菜单 -->
        <!--
         el-menu  菜单父组件
            default-active="2" :默认高亮
            @open="handleOpen"   打开
            @close="handleClose" 关闭
             active-text-color 高亮颜色

router='true'  : 赋值的就是一个 true的字符串类型  'true'
:router='true'  : 赋值的就是一个 true 的布尔类型  true

         el-submenu : 菜单子组件 (可展开)

         el-menu-item : 菜单子组件 (不可展开)

        -->
        <el-menu
          :router="true"
          :default-active="$route.path"
          background-color="#545c64"
          text-color="#fff"
          active-text-color="#ffd04b"
        >
          <el-submenu v-for="item1 in menusList" :key="item1.id" :index="item1.id+''">
            <!-- 自定义标题 -->
            <template slot="title">
              <i class="el-icon-location"></i>
              <span>{{ item1.authName }}</span>
            </template>
            <!-- index="/users" -->
            <el-menu-item
              v-for="item2 in item1.children"
              :key="item2.id"
              :index=" '/'+ item2.path"
            >{{ item2.authName }}</el-menu-item>
          </el-submenu>
        </el-menu>
      </el-aside>
      <el-main class="main">
        <!-- 出口 -->
        <router-view></router-view>
      </el-main>
    </el-container>
  </el-container>
</template>

<script>
export default {
  data () {
    return {
      menusList: []
    }
  },
  created () {
    this.loadLeftMenus()
  },
  methods: {
    /**
     * 退出功能
     */
    async logout () {
      try {
        await this.$confirm('此操作将退出账户, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })

        console.log('点击了确定')
        // 1.清空token值
        localStorage.removeItem('token')
        // 2.调回到login页面
        this.$router.push('/login')
        // 3. 提示退出
        this.$message({
          type: 'success',
          message: '删除成功!',
          duration: 800
        })
      } catch (error) {
        console.log('点击了取消')
        this.$message({
          type: 'info',
          message: '已取消删除'
        })
      }

      //   // 点击确定
      //   .then(() => {
      //     // 以后实际工作中,肯定是要有个退出接口的 , 本地服务器没有, 暂时清空本地的token存储值,
      // // 1.清空token值
      // localStorage.removeItem('token')
      // // 2.调回到login页面
      // this.$router.push('/login')
      // // 3. 提示退出
      // this.$message({
      //   type: 'success',
      //   message: '删除成功!',
      //   duration: 800
      // })
      //   })
      //   // 点击取消
      //   .catch(() => {
      // this.$message({
      //   type: 'info',
      //   message: '已取消删除'
      // })
      //   })
    },
    handleOpen (key, keyPath) {
      console.log('open')
    },
    handleClose (key, keyPath) {
      console.log('close')
    },
    /**
     * 加载左侧菜单权限
     */
    async loadLeftMenus () {
      let res = await this.$axios.get('menus')
      console.log(res)
      this.menusList = res.data.data
    }
  }
}
</script>

<style lang='less'>
* {
  margin: 0;
  padding: 0;
}

html,
body,
#app {
  height: 100%;
}

.container {
  height: 100%;
  min-width: 870px;
}

/* 头部 */
.header {
  height: 60px;
  background: #b3c1cd;
  padding: 0;
  h1 {
    color: #fff;
    font-size: 28px;
    text-align: center;
    line-height: 60px;
  }

  .out {
    text-align: right;
    line-height: 60px;
    padding-right: 40px;
    a {
      color: #daa521;
    }
  }
}

/* 侧栏 */
.aside {
  background: #545c64;
}

/* 内容 */
.main {
  background: #eaeef1;
}
</style>
